from abc import ABC, abstractmethod

class Implementor(ABC):
    @abstractmethod
    def operationImpl(self):
        pass

class ConcreteImplementorA(Implementor):
    def operationImpl(self):
        return "ConcreteImplementorA's operation"

class ConcreteImplementorB(Implementor):
    def operationImpl(self):
        return "ConcreteImplementorB's operation"

class Abstraction(ABC):
    def __init__(self, implementor: Implementor):
        self.implementor = implementor

    @abstractmethod
    def operation(self):
        pass

class RefinedAbstraction(Abstraction):
    def operation(self):
        return "RefinedAbstraction: " + self.implementor.operationImpl()

# Usage
impl_a = ConcreteImplementorA()
impl_b = ConcreteImplementorB()
abstraction = RefinedAbstraction(impl_a)
print(abstraction.operation())

'''
代码实现：
RefinedAbstraction: ConcreteImplementorA's operation
'''